package com.coder4j.javafx;

import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.ButtonType;
import javafx.scene.image.Image;
import javafx.scene.layout.*;
import javafx.stage.Stage;
import javafx.stage.Window;

public class ComponentUtils {

    /**
     * 获取遮罩层
     * @return
     */
    public static Background getMaskBackground(){
        BackgroundImage backgroundImage = new BackgroundImage(
                ComponentUtils.getImage("mask.png"),
                BackgroundRepeat.NO_REPEAT,
                BackgroundRepeat.NO_REPEAT,
                BackgroundPosition.CENTER,
                new BackgroundSize(1.0, 1.0, true, true, false, false));
       return new Background(backgroundImage);
    }



    public static Image getImage(String imgPath) {
        try {
            return new Image(ComponentUtils.class.getClassLoader().getResource(imgPath).openStream());
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    public static void showAlert(String title, String content) {
        Alert alert = new Alert(Alert.AlertType.NONE);
        alert.setTitle(title);
        alert.setContentText(content);

        // 获取Alert所在的Stage
        Window window = alert.getDialogPane().getScene().getWindow();
        Stage stage = (Stage) window;
        stage.getIcons().add(ComponentUtils.getImage("icon.png"));

        alert.getButtonTypes().setAll(ButtonType.OK);
        // 显示对话框并等待用户响应
        alert.showAndWait();
    }

//    public static Alert showAlert(String okMessage,){
//        Alert alert = new Alert(Alert.AlertType.NONE);
//        alert.setTitle("确认操作");
//        alert.setHeaderText("您确定要执行此操作吗？");
//        alert.setContentText("点击确认继续，点击取消放弃操作。");
//
//        // 获取Alert所在的Stage
//        Window window = alert.getDialogPane().getScene().getWindow();
//        Stage stage = (Stage) window;
//        stage.getIcons().add(ComponentUtils.getImage("icon.png"));
//
//
//        // 添加额外的取消按钮
//        ButtonType cancelButton = new ButtonType("取消", ButtonBar.ButtonData.CANCEL_CLOSE);
//        alert.getButtonTypes().setAll(ButtonType.OK, cancelButton);
//
//        // 显示对话框并等待用户响应
//        Optional<ButtonType> result = alert.showAndWait();
//        if (result.isPresent() && result.get() == ButtonType.OK) {
//            System.out.println("用户点击了确认按钮。");
//            // 在这里执行确认操作
//        } else {
//            System.out.println("用户点击了取消按钮。");
//            // 在这里执行取消操作
//        }
//    }
}
